home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 March
/
EnigmA AMIGA RUN 05 (1996)(G.R. Edizioni)(IT)[!][issue 1996-03][Skylink CD IV].iso
/
earcd
/
demo
/
scdb_13d.lha
/
scdb_13d
/
scdb.doc
< prev
Wrap
Text File
|
1996-02-02
|
14KB
|
409 lines
SCDB.DOC SCDB version 1.3d Achim Gorski
Feb 1996
SCDB, (c) Copyright 1994-96, Achim Gorski. All Rights Reserved.
This software may be distributed for non-profit only. This software
is FREEWARE, but NOT FOR COMMERICAL USE! If you have paid money for
this software, then you have been ripped off. This program is
provided "as is" without warranty of any kind. All risks involved
using this program is entirely yours. The author assumes no
responsibility or liability whatever for any damage or dataloss caused
by using SCDB. Although everything has been done to make sure the
program is fully functional, the author cannot guarantee this for a
100%. This package may be distributed as is only.
Achim Gorski
Starenweg 27
50997 Koeln
Germany
SCDB - a Sound Carrier DataBase.
SCDB is based on isam (indexed sequential acces method) and uses a
multilevel index structure.
_--------------------------------------------------------------------_
--__ Some shells may filter Xon/Xoff CHRs : ^Q ^S ^X ^C __--
_- Try to disable any filter or SCDB won't work correctly. -_
----------------------------------------------------------------------
ALPHA (DEC), INTEL, ...
!! THE DEFAULT "Music.SDB" SCDB-DATABASE IS A 32 BIT BIG-ENDIAN !!
!! BYTE ORDERING DATABASE. USE THE BUILD-IN CONVERT FUNCTION !!
Some Processors (e.g. Intel & National Semiconductor) use
little-endian byte ordering! The default SCDB-database is saved in
big-endian byte ordering.
Little-endian byte ordering processors address the lowest byte with
increasing addresses.
Example:
ADDRESS|00|01|02|03
-------+--+--+--+--
VALUE |AA|BB|CC|DD <- Big-endian byte ordering
|DD|CC|BB|AA <- Little-endian byte ordering
----------------------------------------------------------------------
Edit the file '.SCDB-Config' for your own configuration.
'.SCDB-Config' should be in the current directory or in HOME
(enviroment-variable). If there's nothing, there will be nothing
defined except 'Type' and the default printer-configuration. After
changing 'Type' you should reorganize your database or you will get
wrong statistics! The default 'Music.SDB' SCDB-database will be read
if no argument is given! Do not read this document (waste of time)!
Use the program!!
Try 'SCDB -h'.
Short INFO about SCDB:
COMMAND MODE
CTRL-? or ?
Help
CTRL-F
Find Artist/Title. Try TAB-completion (once: ARTIST-completion,
twice: TITLE-completion). The function is case insensitive and
ignores every none-alphanumeric-char!
F
Find next Artist/Title
CTRL-L
Log record IN or OUT. Ok, you loaned it - this should change
LOCATION. Your chance to change it.
L
List loaned records.
M
View comment (More)
Commands:
<Space> ............. Next Page (More)
q or ctrl/c ......... Quit
< or 7 .............. First Page
> or 1 .............. Last Page
b, DEL or <BackSpace> Previous Page
V
View index ON/OFF
If index ON:
KEY ACTION
----------------------------------------------------
7 jump to top of page
1 jump to bottom of page
SPACE/DEL one page forward/backward
arrow right/left one page forward/backward
arrow up/down or +/- one line forward/backward
--Cherrymoon <--.
+--Trax II | *L 10/1994 Vinyl-Maxi
^ | ^ ^ ^
| `-- artist | | |
`------------ title record is loaned --´ | |
release date -------´ |
type --------------´
S
Searches for the string found in 'See also'
CTRL-S
Statistics
TT: 0y 0d 0h 0m 0s (Total time of Total Time) -:))
| | | | |
| | | | `-- seconds
| | | `----- minutes
| | `-------- hours
| `----------- days
`--------------- years
CTRL-P
Select print option & print. If you want to use this functions,
you should set the configuration-variable '.OUTPUT:' and '.PRINTER:'.
'.OUTPUT:' and '.PRINTER:' specify where the output goes. .OUTPUT:
should be an ASCII-printer or a filename. Look at '.SCDB-Config'. If
there are any problems with your printer, try to change variables in
'.SCDB-Config'. Remember: the variables only affect '.PRINTER:' and
NOT '.OUTPUT:'.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SELECT OPTION
'To .OUTPUT: as FULL List':
Reads the whole database and creates a LIST of all entries which
match with the given key(s). Hunts for specific information like
CTRL-H. The output goes to .OUTPUT:. '**' in Artist-field
creates a list of the whole database.
SELECT OPTION
'To .OUTPUT: as SHORT List':
Reads the whole database and creates a LIST (short output!). '**'
in Artist-field creates a list of the whole database.
SELECT OPTION
'To .PRINTER: as LABEL':
Print label. Output goes to .PRINTER:. You should use
self-adhesive labels (101,6 x 35,7 mm).
P
Print as selected in CTRL-P.
CTRL-O
Prints a CassCover of selected entries to .PRINTER:. While
choosing entries it is possible to use every function of SCDB (e.g.
FIND, HUNT,...). If you want to use this functions, you should set
the '.PRINTER:' variable.
CTRL-H
Hunts for specific information in the whole database. This
function will need some time ! The function is case insensitive and
ignores every none-alphanumeric-char! TAB completes Artist, Title,
Label, Type, Category & Location.
CTRL-R
Reorganizes the database. You should do this if you update from an
old to a new SCDB-version. Regorganize will correct all statistics,
remove trash and sort the database on disk. Never reorganize a
database if you run SCDB twice or more on the same database! This
cost only your time and will reorganize nothing.
CTRL-^
Import ASCII delimited. Press TAB for filename completion. The
IMPORT-function is just a by-product of my own imported database. So
don't overrate it!
CTRL-\
This function let you exchange SCDB-databases from different
systems. Press TAB for filename completion. It is possible to import
any SCDB-database from any system to any system! Little/Big-endian
byte ordering or 32/64 bit(or more) systems - no matter ! This
function imports all.
Example:
[Input:] ../alpha/Music.SDB
This will import a 64 bit little-endian byte ordering database.
Comment: importing a 64 bit database to a 32 bit system works if the
database is less than 4 Gbytes (2^32)! This function also imports old
SCDB-databases.
CTRL-Z
Lock ON/OFF. Lock OFF: all function available (default)
Lock ON : only view & print functions available
(Don't forget your password!) -:))
... all other functions should explain itself.
EDITOR MODE
Functions should explain itself. (lazy programmer) (Rule:
writehowyalike!)
While editing Tracks it is possible to press TAB for Artist completion
(only if Artist is 'Various Artists' and only in the second half of a
string).
Use keyboard shortcuts in window (e.g. Label, Type, Category,...)
No further decription at this time: Just use it. Hit the keys and
you will see the results.
FUTURE: Any ideas??: send me mail.
----------------------------------------------------------------------
FOR THOSE WHO WANT TO KNOW MORE ABOUT THIS DATABASE:
Some information about the input-fields:
Field name Attributes Chars Comment
--------------------------------------------------------------
Artist Capitalize Words 49 Minimum: 1 char !
Title Capitalize Words 49 Not after "'"
Label Capitalize Words 38 Not after "'"
Catalog Upper case 26
See also Text 68
Type Text 12
Released Numeric 7 (?, mm/yyyy or yyyy)
Number Numeric 2 0 < x < 100
Tracks Numeric 4 0 < x < (99*Number)+1
Category Capitalize Words 31
Location Text 23
Barcode Numeric 18
Comment Text size of memory!
Info Upper case 46
TRK Capitalize Words 68 Not after "'"
Time Numeric, 5 (mm:ss)
Time dependent auto-return(time-out: 0.5s)
THE STRUCTURE OF THE MAIN-FILE:
pos length[byte] field comment
---------------------------------------------------------------------
0.
<= Version 1.0c (02.03.95):
1 ID only once in the database
always 8
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>= Version 1.0d:
3 ID only once in the database
(always in Big-endian byte
ordering!!) Looks like that:
struct scdb_id {
unsigned int ID_1:4; /* ID_1: always 8 */
unsigned int endian:1; /* 1/0 big/little-endian */
unsigned int longs:6; /* bits=((longs+1)*4*8) */
unsigned int ID_2:7; /* ID_2=ID_1+endian+longs+0 */
unsigned int :6; /* Future */
};
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>= Version 1.1 :
struct scdb_id { ...
unsigned int ID_2:7; /* ID_2=ID_1+endian+longs+1 */
... };
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>= Version 1.2 :
struct scdb_id { ...
unsigned int ID_2:7; /* ID_2=ID_1+endian+longs+2 */
... };
...and so on.
1. unsigned long size of record
2. 1 length
max. 49 Artist min. 1
3. 1 length
max. 49 Title
4. 1 length
max. 38 Label
5. 1 length
max. 26 Catalog
6. 1 length
max. 12 Type
7. 1 length
max. 7 Released
8. 1 ..
max. 2 Number min. '1'
9. 1 ..
max. 4 Tracks min. '1'
10. 1 ..
max. 31 Category
11. 1 length=23 length always 23
23 Location
12. 1 length
max. 18 Barcode
13. 1 ..
11 Loaned on
14. 1 ..
8 Total Time
15. 1 ..
11 Rec-Date
16. 1 ..
max. 68 See also
17.
<= Version 1.0e:
18 lines comment
saved in the known format: length,string,length,string,....
\__1 \__max.76
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>= Version 1.1 :
unsigned long number of x lines
x lines comment saved in the known format:
length,string,length,string,....
\__1 \__max.78
18.
<= Version 1.0e:
Number of tracks per disc per record.
Example:
Number=2, Tracks=23 (No.1: 11TRKs, No.2: 12TRKs.
something like that should be saved:
0b 0c
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>= Version 1.1 : __/info
Number of tracks per disc per record & length, string per disc.
\__1 \__max.46
Example:
Number=2, Tracks=23, No.1: 11TRKs, No.2: 12TRKs,
Info 1: This is an, Info 2: example .
something like that should be saved:
0b 0a This is an 0c 07 example
19.
<= Version 1.0e:
length,track-string,length,time,...... (for every track)
\__1 \__max.68 \__1 \__max.5
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>= Version 1.1 :
length,track-string,length,time,...... (for every track)
\__1 \__max.68 \__1 \__max.4 ( NO ':' !)
...next record -> goto 1.
The index-structure is a little bit different (build your own).
(I really hate writing documents ..^@#]´`%$`~/:@}[§"!}+..)
----------------------------------------------------------------------
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
! ! SAVE THE VINYL ! !
| | | | | | | | |
| | | | | | | | |
| | | | | | |
| | | | |
| | |
|